/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package programm;

import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import model.Song;

/**
 *
 * @author Παναγιώτης
 */
public class SeartchSong{
    
private static EntityManager em;    //o entity manager   
private String seartchFor = new String();
List<Song> songList=new ArrayList();


public SeartchSong() {
    DBmanager dbm = new DBmanager(); 
    SeartchSong.em=dbm.getEm();
}

//κατασκευαστής με παράμετρο το προς αναζήτηση String
public SeartchSong(String seartchFor) {
    this.seartchFor=seartchFor;
        
    DBmanager dbm = new DBmanager(); 
    SeartchSong.em=dbm.getEm();
}

//η μέθοδος αναζήτησης υποσυμβολοσειράς σε συμβολοσειρά
public List<Song> seartchIndexOf() {
    List<Song> songs = new ArrayList();
    boolean flag;
    Query q=em.createQuery("SELECT s FROM Song s", Song.class);
    songs=q.getResultList();
    for(Song s: songs) {
        flag=false;
        try {
            if(s.getSongTitle().toLowerCase().contains(seartchFor.toLowerCase()) || s.getAlbumId().getArtistId().getFirstName().toLowerCase().contains(seartchFor.toLowerCase()) || s.getAlbumId().getArtistId().getLastName().toLowerCase().contains(seartchFor.toLowerCase()) || s.getAlbumId().getArtistId().getArtisticName().toLowerCase().contains(seartchFor.toLowerCase())) flag=true;
        } catch (NullPointerException e) {
            if(s.getSongTitle().toLowerCase().contains(seartchFor.toLowerCase()) || s.getAlbumId().getGroupId().getGroupName().toLowerCase().contains(seartchFor.toLowerCase())) flag=true;
        }
        if(flag) songList.add(s);
    }
    
    return songList; 
}


}
